//
// Created by xqyr on 2025/4/13.
//

#ifndef DEVMIDWARE_LOG_H
#define DEVMIDWARE_LOG_H

#include "zlog.h"
#ifdef __cplusplus
extern "C" {
#endif

#define ESC_START       "\033["
#define ESC_END         "\033[0m"
#define COLOR_FATAL     "31;40;5m"  // 红色闪烁
#define COLOR_ERROR     "31;40;1m"  // 红色
#define COLOR_WARN      "33;40;1m"  // 黄色
#define COLOR_INFO      "34;40;1m"  // 青色
#define COLOR_DEBUG     "32;40;1m"  // 绿色
extern zlog_category_t *c;
#define LOG_FATAL(fmt, args...) \
    zlog_fatal(c, ESC_START COLOR_FATAL fmt ESC_END, ##args)
#define LOG_ERROR(fmt, args...) \
    zlog_warn(c, ESC_START COLOR_ERROR fmt ESC_END, ##args)
#define LOG_WARN(fmt, args...) \
    zlog_warn(c, ESC_START COLOR_WARN fmt ESC_END, ##args)
#define LOG_INFO(fmt, args...) \
    zlog_info(c, ESC_START COLOR_INFO fmt ESC_END, ##args)
#define LOG_DEBUG(fmt, args...) \
    zlog_debug(c, ESC_START COLOR_DEBUG fmt ESC_END, ##args)

int initLog();
int endLog();
#ifdef __cplusplus
}
#endif
#endif //DEVMIDWARE_LOG_H
